package com.itee.javafx;

import javafx.beans.value.ObservableValue;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.cell.CheckBoxTableCell;
import javafx.util.Callback;
import javafx.util.StringConverter;

/**
 * Created by gonglei on 14-5-4.
 */
public class CheckBoxCellFactory<S, Boolean>
        implements Callback<TableColumn<S, Boolean>, TableCell<S, Boolean>> {

    @Override
    public TableCell<S, Boolean> call(TableColumn<S, Boolean> p) {
        return new CheckBoxTableCell<>() ;
    }


//    public static <S, T> Callback<TableColumn<S, T>, TableCell<S, T>> tableCheckBoxColumn(
//            Callback<Integer, ObservableValue<Boolean>> paramCallback,
//            boolean paramBoolean) {
//        StringConverter<T> callback = new StringConverter<T>() {
//            @Override
//            public String call(T t) {
//                return ((t == null) ? "" : t.toString());
//            }
//        };
//        return tableCheckBoxColumn(paramCallback, callback);
//    }
//
//    public static <S, T> Callback<TableColumn<S, T>, TableCell<S, T>> tableCheckBoxColumn(
//            final Callback<Integer, ObservableValue<S>> getSelectedProperty,
//            final StringConverter<T> toString) {
//        return new Callback<TableColumn<S, T>, TableCell<S, T>>() {
//            @Override
//            public TableCell<S, T> call(TableColumn<S, T> paramTableColumn) {
//                return new CheckBoxTableCell<S,T>(getSelectedProperty,toString);
//            }
//        };
//    }
}
